/**
 * <p>Title: CommonService.java</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2015</p>
 * <p>Company: SiySoft</p>
 * @author liguanghui
 * @date 2015年5月28日
 * @version 1.0
 */
package com.siysoft.tc.base.service;

import java.util.List;
import java.util.Map;

import javax.mail.MessagingException;
import javax.servlet.http.HttpServletRequest;

import com.siysoft.exception.FileUploadException;
import com.siysoft.exception.MailPropertyNotFoundException;
import com.siysoft.exception.SMSCodeSendFailedException;
import com.siysoft.tc.base.bean.to.Banner;
import com.siysoft.tc.base.bean.to.ClassType;

/**
 * <p>
 * Title: CommonService
 * </p>
 * <p>
 * Description:公共方法Service
 * </p>
 * <p>
 * Company: yihaoxue
 * </p>
 * 
 * @author victoryu
 */
public interface ICommonService {
	/**
	 * 方法摘要：发送邮箱消息 作者：victoryu 
	 * 
	 * @param toAddress
	 *              目标邮箱地址
	 * @param requestIp
	 *              请求IP
	 * @throws MailPropertyNotFoundException
	 *               邮箱账户配置失败异常
	 * @throws MessagingException
	 *               邮箱发送失败异常
	 */
	boolean sendEmailMsg(String toAddress, String requestIp,String title,String content)
			throws MailPropertyNotFoundException, MessagingException;

	/**
	 * 方法摘要：发送邮箱验证码 作者：victoryu 
	 * 
	 * @param toAddress
	 *              目标邮箱地址
	 * @param requestIp
	 *              请求IP
	 * @throws MailPropertyNotFoundException
	 *               邮箱账户配置失败异常
	 * @throws MessagingException
	 *               邮箱发送失败异常
	 */
	boolean sendEmailVerfiyCode(String toAddress, String requestIp)
			throws MailPropertyNotFoundException, MessagingException;
	
	/**
	 * 方法摘要： 手机验证码发送方法 作者：victoryu  
	 * 
	 * @param phoneNumber
	 *              目标手机号
	 * @param content
	 *              短信内容
	 * @return 发送结果 成功返回true
	 * @throws SMSCodeSendFailedException
	 *               通过接口发送请求失败异常
	 */
	boolean sendSMSVerifyCode(String phoneNumber, String content)
			throws SMSCodeSendFailedException;
	
	/**
	 * 方法摘要： 文件上传方法 作者：zhengyan 日期：2015年6月1日 08:04:23
	 * 
	 * @param request
	 * 				HttpServletRequest
	 *              
	 * @param userId
	 * 				当前用户id            
	 *              
	 * @return 文件上传后的服务器路径集合
	 * @throws FileUploadException
	 *               文件读写异常
	 */
	Map<String, String> fileUpload(HttpServletRequest request, String userId)
			throws FileUploadException;
	/**
	 * 方法摘要： 发送短信内容
	 * 作者：liguanghui
	 * 日期：2015年7月14日 下午3:44:20
	 * @param phoneNumber 手机号码
	 * @param msg 短信内容
	 * @return 如果发送成功，返回true
	 * @throws SMSCodeSendFailedException
	 */
	boolean sendMsg(String phoneNumber, String msg)
			throws SMSCodeSendFailedException;
	
	/**
	 * 方法摘要： 获得系统banner图.
	 * 作者：victoryu
	 */
	List<Banner> getBanners(int limit);
	
	
	/**
	 * 方法摘要： 获得课程类别列表.
	 * 作者：victoryu
	 */
	List<ClassType> getClassType() throws Exception;
	
	
}
